# -*- coding: iso-8859-15 -*-
import sys
class sintax:
	def __init__(self):
		self.int = ['1','2','3','4','5','6','7','8','9','0']
		self.boolean = ['true', 'false']
		self.delimitador = [ ";", ":", "(", ")", "[", "]", "."]
		self.operador = [ "+", "-", "*", "/", "=", "==", ">="]
		self.palavrasreservadas=["if","else", "then", "program", "writeln", "write", "integer","readln", "function", "var", "case", "of", "begin",  "end", "while", "do", "word", "real","array", "boolean"]
	# verifica o tipo do token	
	def settypeintoken(self, token):
		if token.gettoken() in self.palavrasreservadas:
			token.tipo = "palavrareservada"
		elif token.gettoken() in self.delimitador:
			token.tipo = "delimitador"
		elif token.gettoken() in self.operador:
			token.tipo = "operador"
		elif token.gettoken()[0] in self.int:
			for i in token.gettoken():
				# verifica se o inteiro nao é uma variavel malformada
				#print str(i)+" ",
				if not (i in self.int):
					print "VARIAVEL '" + str(token.gettoken()) + "' NaO PODE INICIAR POR NUMERO"  
					# OPA, gambia aqui
					sys.exit(1)	
			token.tipo = "inteiro"
		elif token.gettoken() in self.boolean:
			token.tipo = "booleano"
		else:
			token.tipo = "variavel"
			
			
	def listoftype(self, type):
		return type
